<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
		
		// 默认的 Iterator 部署在数据结构的 Symbol.iterator 属性上	
		// 凡是部署了 Symbol.iterator 属性的数据结构就称为部署了遍历器接口，调用这个接口会返回一个遍历器对象
		// 该对象的特征就是具有 next 方法，每次调用 next 方法都会返回一个代表当前成员信息的对象
			function makeIterator(array) {
				let index = 0;
				return { // 返回的遍历器
					next: function () { // 遍历器的 next 放
						return index < array.length ?
						{ value: array[index++], done: false } :
						{ value: array[index++], done: true }
					}
				}
			}
			
			// 原生具备 Iterator 接口的数据结构如下
			// Array Map Set String TypedArray 函数的 arguments 对象 NodeList 对象
			
			let it = makeIterator(['a', 'b', 'c']);
			console.log(it);	
		</script>
	</body>
</html>
